#include <iostream>
#include <cstdlib>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <signal.h>
#include <unistd.h>

void Daemon()
{
    // 1.将一些信号进行忽略
    signal(SIGPIPE,SIG_IGN);
    signal(SIGCHLD,SIG_IGN);

    // 2.确保自己不是进程组的组长
    if(fork()>0)
    {
        exit(0);
    }

    // 3.创建会话
    setsid();

    // 4.对标准输入,标准输出,标准错误进行重定向
    int nullfd=open("/dev/null",O_RDONLY|O_WRONLY);

    if(nullfd>=0)
    {
        dup2(0,nullfd);
        dup2(1,nullfd);
        dup2(2,nullfd);
    }
}